package com.doublethread.easymart.modules.cart.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 购物车VO
 * 对应数据库cart表结构，用于前端展示
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CartVO {

    /**
     * 购物车ID
     */
    private Long id;

    /**
     * 商品ID
     */
    private Long productId;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 商品主图
     */
    private String productImage;

    /**
     * 商品当前价格
     */
    private BigDecimal currentPrice;

    /**
     * 加入购物车时的价格
     */
    private BigDecimal cartPrice;

    /**
     * 商品数量
     */
    private Integer quantity;

    /**
     * 小计金额（数量 * 当前价格）
     */
    private BigDecimal subtotal;

    /**
     * 商品库存
     */
    private Integer stock;

    /**
     * 商品状态：0-下架，1-上架
     */
    private Integer productStatus;

    /**
     * 是否有效（商品上架且有库存）
     */
    private Boolean isValid;

    /**
     * 价格是否变动
     */
    private Boolean priceChanged;

    /**
     * 加入购物车时间
     */
    private LocalDateTime createTime;
}
